/*
 * Copyright 2023-2025, Haiku, Inc. All rights reserved.
 * Distributed under the terms of the MIT License.
 *
 * Authors:
 *   Haiku Development Team
 */
#ifndef _KERNEL_BOOT_PLATFORM_EFI_ARCH_LOONGARCH64_MMU_H
#define _KERNEL_BOOT_PLATFORM_EFI_ARCH_LOONGARCH64_MMU_H

#include <SupportDefs.h>
#include <efi/types.h>

#ifdef __cplusplus
extern "C" {
#endif

// 生成EFI退出后使用的页表
uint64_t arch_mmu_generate_post_efi_page_tables(size_t memory_map_size,
    efi_memory_descriptor* memory_map, size_t descriptor_size,
    uint32_t descriptor_version);

// EFI退出后的MMU设置
void arch_mmu_post_efi_setup(size_t memory_map_size,
    efi_memory_descriptor* memory_map, size_t descriptor_size,
    uint32_t descriptor_version);

#ifdef __cplusplus
}
#endif

#endif /* _KERNEL_BOOT_PLATFORM_EFI_ARCH_LOONGARCH64_MMU_H */